package study.itwill.team5.main;

import java.util.ArrayList;

import study.itwill.common.DBHandler;
import study.itwill.team5.admin.Admin;
import study.itwill.team5.admin.AdminItem;

/**
 * 관리자 기능들을 실행하는 메인 클래스
 */
public class Main01 {
	
	public static void main(String[] args) {
		
		// 데이터베이스 제어 객체에 대한 참조
		DBHandler db = DBHandler.getInstance();
		
		String 	HOSTNAME = "127.0.0.1";	// 현재 내 컴퓨터
		int 	HOSTPORT = 3306;		// 기본 포트 번호
		String	DATABASE = "italia";	// Schema 이름
		String 	USERNAME = "samulman";		// 접속 계정 아이디
		String 	PASSWORD = "9878";	// 비밀번호
		String 	CHARSET = "utf8";		// 케릭터 셋
		
		db.setInfo(HOSTNAME, HOSTPORT, DATABASE, USERNAME, PASSWORD, CHARSET);
		db.connect();
		
		Admin admin = new Admin();
		
		/** 1. 어드민 계정 입력 */
		int seq = admin.addAdmin("admin01", "admin1234", 1, "슈퍼관리자");
		
		if(seq < 0) {
			System.out.println("어드민 계정 추가 실패");
		} else {
			System.out.println(seq + "번 어드민 계정 추가됨");
		}
		
		seq = admin.addAdmin("admin02", "admin2345", 2, "서브관리자");
		
		if(seq < 0) {
			System.out.println("어드민 계정 추가 실패");
		} else {
			System.out.println(seq + "번 어드민 계정 추가됨");
		}
		
		seq = admin.addAdmin("admin03", "admin3456", 3, "미니관리자");
		
		if(seq < 0) {
			System.out.println("어드민 계정 추가 실패");
		} else {
			System.out.println(seq + "번 어드민 계정 추가됨");
		}
		System.out.println("---------------------------------------------------");
		
		
		/** 2. 어드민 계정 수정 */
		
		boolean edit = admin.editAdmin(1, "admin01", "admin1234", 1, "최고관리자");
		
		if(edit == false) {
			System.out.println("어드민정보 수정 실패");
		} else {
			System.out.println("어드민정보 수정됨");
		}
		System.out.println("---------------------------------------------------");
		
		
		/** 3. 어드민 계정 삭제 */
		boolean delete = admin.deleteAdmin(2);
		
		if(delete == false) {
			System.out.println("어드민 계정 삭제 실패");
		} else {
			System.out.println("어드민 계정 삭제됨");
		}
		System.out.println("---------------------------------------------------");
		
		
		/** 4. 어드민 계정 조회 */
		
		// 3번 어드민 계정의 정보 조회
		AdminItem item = admin.viewAdmin(3);
		
		if(item == null) {
			System.out.println("조회된 데이터 없음");
		} else {
			System.out.println(item.toString());
		}
		System.out.println("---------------------------------------------------");
		
		// 모든 어드민 계정의 정보 조회
		ArrayList<AdminItem> list = admin.listAdmin();
		
		if(list == null) {
			System.out.println("조회된 데이터 없음");
		} else {
			for (int i=0; i<list.size(); i++) {
				AdminItem temp = list.get(i);
				System.out.println(temp.toString());
			}
		}
		System.out.println("---------------------------------------------------");
		
		
		/** 5. 어드민 계정 로그인 */
		
		AdminItem login = admin.doLogin("admin03", "admin3456");
		
		if(login == null) {
			System.out.println("로그인 실패");
		} else {
			System.out.println("로그인 성공");
		}
		System.out.println("---------------------------------------------------");
		
		// 접속해제
		db.disconnect();
	}
}
